/*
 * ConfiguracionNivel.h
 *
 *  Created on: Nov 16, 2013
 *      Author: Hernan
 */

#ifndef CONFIGURACIONNIVEL_H_
#define CONFIGURACIONNIVEL_H_
#include <iostream>
#include <list>
#include <fstream>
#include "yaml-cpp/yaml.h"
#include <string>
#include <fstream>
#include <list>
#include "../common/Logger.h"
#include "AreaOtorgada.h"
#include "ElementoDisponibleJugador.h"

using namespace std;

class ConfiguracionNivel {
private:
	list<AreaOtorgada*>* areasOtorgadas;
	list<ElementoDisponibleJugador*>* elementosDisponiblesPorJugador;
	int nroNivel, cantidadJugadores;
public:
	ConfiguracionNivel(string pathConf);
	list<AreaOtorgada*>* getListaAreasOtorgadas();
	AreaOtorgada* getAreaOtorgadaJugador(int);
	list< pair<string,string> >* getListaElementosDisponibles(int nroJugador);
	list<ElementoDisponibleJugador*>* getElementosDisponiblesJugador(int nroJugador);
	virtual ~ConfiguracionNivel();
	int getNivel();

	int getCantidadJugadores() {
		return cantidadJugadores;
	}

	void setCantidadJugadores(int cantidadJugadores) {
		this->cantidadJugadores = cantidadJugadores;
	}
};

#endif /* CONFIGURACIONNIVEL_H_ */
